package cn.iocoder.yudao.module.resource.controller.admin.audio.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema.RequiredMode;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.util.List;

@Schema(description = "管理后台 - 音频新增/修改 Request VO")
@Data
public class LmAudioSaveReqVO {

    @Schema(description = "保证自增id", requiredMode = Schema.RequiredMode.REQUIRED, example = "15929")
    private Integer id;

    @Schema(description = "音频的名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
    @NotEmpty(message = "音频的名字不能为空")
    private String name;

    @Schema(description = "音频的文字描述或音频的文字内容", requiredMode = RequiredMode.REQUIRED)
    private String textDesc;

    @Schema(description = "音频文件id", example = "11822", requiredMode = RequiredMode.REQUIRED)
    private Long fileId;

    @Schema(description = "标签id数组，一个音频可以有多个标签")
    private List<Integer> tagIdArray;

    @Schema(description = "关键字")
    private List<Integer> keyWordIdArray;
    @Schema(description = "音频时长,单位秒", requiredMode = RequiredMode.REQUIRED)
    private Integer audioTime;

    /**
     * 主音频关联类型
     */
    @Schema(description = "关联音频类型：1，默认，默认时不做任何关联，2，问答式需关键字回复")
    private int relationType;

    @Schema(description = "声纹id")
    @NotNull(message = "声纹不能为空")
    private Integer audioToneId;

    /**
     * 主音频关联的id列表
     */
    @Schema(description = "relationType为1时，这个为空，为2时，是配置的条件,可以关联多个")
    private List<AudioRelationSaveVo> audioRelationList;

}